Player structure as found in game memory.
Structure is 3108 (0xC24) bytes long.
All fields are 4 bytes long unless noted otherwise.
Local player number stored at 56EB28.
(Object used to center view at 5758B4.)
(Object used to mark research compelete at 56C230.)


Address Offset	Description
 (base) 	
------- ------	-----------

56EF1C	0x000	playerNum
56EF20	0x004	allyMask (each player has 1 bit for the alliance status)
56EF24	0x008.0	(4 bits) NumRLV
	0x008.4	(4 bits) NumSolarSatellites
	0x009.0 (1 bit ) 
	0x009.1 (4 bits) numEdwardSatellites
56EF28	0x00C	difficulty
56EF2C	0x010	foodStored
56EF30	0x014	(Set to 500000. Unimplemented max food? Never seems to be accessed after initial setting.)
56EF34	0x018	maxCommonOre
56EF38	0x01C	maxRareOre
56EF3C	0x020	currentCommonOre
56EF40	0x024	currentRareOre
56EF44	0x028	IsHuman
56EF48	0x02C	IsEden
56EF4C	0x030	colorNumber
------------- [MoraleState]
56EF50	0x034	moraleLevel (0 = Great, 1 = Good, 2 = OK, 3 = Poor, 4 = Rotten/Terrible)
56EF54	0x038	eventMoraleModifier
56EF58	0x03C	
56EF5C	0x040	morale (0-99)
56EF60	0x044	
56EF64	0x048	residenceDemand
56EF68	0x04C	foodSupply (0 = Surplus, 1 = DeficitBigSupply, 2 = Deficit, 3 = Starving)
56EF6C	0x050	disabledBldgRatio (0%-100%)
56EF70	0x054	recForumDemandPercent (0%-100%, or 10000 when none exist)
56EF74	0x058	(Unimplemented seperate forum demand percent? Never seems to be accessed after initial setting to 0.)
56EF78	0x05C	medCenterDemandPercent (0%-100%, or 10000 when none exist)
56EF7C	0x060	boolNurseryOperational
56EF80	0x064	boolUniversityOperational
56EF84	0x068	numDisasterWarningSystems
56EF88	0x06C	dirtAvgDamagePrevention (0-10000, % x 100)
56EF8C	0x070	unoccupiedColonistPercent
56EF90	0x074	scientistsAsWorkersPercent
56EF94	0x078	boolGORFOperational
-------------
56EF98	0x07C	(Unimplemented scientist growth remainder? Never seems to be access after initial setting to 0.)
56EF9C	0x080	workerGrowthRemainder
56EFA0	0x084	kidGrowthRemainder
-------------
56EFA4	0x088	kidDeathRemainder
56EFA8	0x08C	scientistDeathRemainder
56EFAC	0x090	workerDeathRemainder
-------------
56EFB0	0x094	Workers
56EFB4	0x098	Scientists
56EFB8	0x09C	Kids
-------------
56EFBC	0x0A0	boolRecalculateValues (Set to 1 (true) whenever the values following in this section may need to be updated. This will cause all values to be cleared to 0, and recalculated from scratch.)
56EFC0	0x0A4	numAvailableWorkers
56EFC4	0x0A8	numAvailableScientists
56EFC8	0x0AC	amountPowerGenerated
56EFCC	0x0B0	inactivePowerCapacity
56EFD0	0x0B4	amountPowerConsumed
56EFD4	0x0B8	amountPowerAvailable
56EFD8	0x0BC	numIdleBuildings
56EFDC	0x0C0	numActiveBuildings
56EFE0	0x0C4	numBuildings
56EFE4	0x0C8	numUnpoweredStructures
56EFE8	0x0CC	numWorkersRequired		[assigned workers and scientists]
56EFEC	0x0D0	numScientistsRequired		[assigned to buildings, or researching]
56EFF0	0x0D4	numScientistsAsWorkers
56EFF4	0x0D8	numScientistsAssignedToResearch
56EFF8	0x0DC	totalFoodProduction
56EFFC	0x0E0	totalFoodConsumption
56F000	0x0E4	foodLacking  		[how much food needed to stop people starving? Note this can be 0 even if there is a food deficit]
56F004	0x0E8	netFoodProduction
56F008	0x0EC	numSolarSatellites 	[copy from bitfield at offset 8]
-------------
56F00C	0x0F0	TotalCapacities
 56F00C	 0x0F0	 totalRecreationFacilityCapacity
 56F010	 0x0F4	 totalForumCapacity
 56F014	 0x0F8	 totalMedCenterCapacity
 56F018	 0x0FC	 totalResidenceCapacity
 ------------	 ------------------------------------
 56F01C	 0x100	 numActiveCommandCenters
 56F020	 0x104	 numActiveNurseries
 56F024	 0x108	 numActiveUniversities
 56F028	 0x10C	 numActiveObservatories
 56F02C	 0x110	 numActiveMeteorDefenses
 56F030	 0x114	
		------------------------------------
56F034	0x118	numPowerGenerationFacilities
56F038	0x11C	numActivePowerGenerationFacilities
56F03C	0x120	numDisabledPowerGenerationFacilities
56F040	0x124	numIdledPowerGenerationFacilities
		------------------------------------
56F044	0x128	numAgridomes
56F048	0x12C	numActiveAgridomes
56F04C	0x130	numDisabledAgridomes
56F050	0x134	numIdledAgridomes
		------------------------------------
56F054	0x138	numCommonOreSmelters
56F058	0x13C	numActiveCommonOreSmelters
56F05C	0x140	numDisabledCommonOreSmelters
56F060	0x144	numIdledCommonOreSmelters
		------------------------------------
56F064	0x148	numCommonOreStorageTanks
56F068	0x14C	numActiveCommonOreStorageTanks
56F06C	0x150	numDisabledCommonOreStorageTanks
56F070	0x154	numIdledCommonOreStorageTanks
		------------------------------------
56F074	0x158	numRareOreStorageTanks
56F078	0x15C	numActiveRareOreStorageTanks
56F07C	0x160	numDisabledRareOreStorageTanks
56F080	0x164	numIdledRareOreStorageTanks
		------------------------------------
56F084	0x168	numRareOreSmelters
56F088	0x16C	numActiveRareOreSmelters
56F08C	0x170	numDisabledRareOreSmelters
56F090	0x174	numIdledRareOreSmelters
		------------------------------------
56F094 	0x178 	numGORFs
56F098 	0x17C 	numActiveGORFs
56F09C 	0x180 	numDisabledGORFs
56F0A0 	0x184 	numIdledGORFs
		------------------------------------
56F0A4	0x188	numCommonOreMines
56F0A8	0x18C	numHighYieldCommonOreMines
56F0AC	0x190	numMediumYieldCommonOreMines
56F0B0	0x194	numLowYieldCommonOreMines
		------------------------------------
56F0B4	0x198	numRareOreMines
56F0B8	0x19C	numHighYieldRareOreMines
56F0BC	0x1A0	numMediumYieldRareOreMines
56F0C0	0x1A4	numLowYieldRareOreMines
		------------------------------------
56F0C4	0x1A8	numRobotCommandCenters
56F0C8	0x1AC	numActiveRobotCommandCenters
56F0CC	0x1B0	numDisabledRobotCommandCenters
56F0D0	0x1B4	numIdledRobotCommandCenters
		------------------------------------
56F0D4	0x1B8	boolRobotCommandCenterOperational
-------------
56F0D8	0x1BC	numBuidlingsConstructed?
56F0DC	0x1C0	numUnitsCreated?
56F0E0	0x1C4	
56F0E4	0x1C8	
56F0E8	0x1CC	
56F0EC	0x1D0	
56F0F0	0x1D4	
-------------
56F0F4	0x1D8	
56F0F8		
56F0FC		
56F100		
56F104		
56F108	0x1EC	starvationCase (MOD 5) (0, 4 = kid starved, 1, 2 = scientist starved, 3 = worker starved) (People starve in the order: kid, scientist, scientist, worker, kid)
-------------
56F10C	0x1F0	UnitGroup[11]
 56F10C	 0x1F0	 char numUnits
 56F10D	 0x1F1	 short[32] unitIndex
56F3D7	0x4BB	char padding?
-------------
56F3D8 	0x4BC 	playerNetID
-------------
56F3DC	0x4C0	MachineSettings  [Placed in CP 0x34=ctMachineSettings]
 56F3DC	 0x4C0	 [WORD] cpuSpeed
 56F3DE	 0x4C2	 [WORD] totalPhysMem  [MB rounded up to multiple of 4]
 56F3E0	 0x4C4	 [WORD] windowWidth   [of Dans_RULE_UIFrame]
 56F3E2	 0x4C6	 [WORD] windowHeight  [of Dans_RULE_UIFrame]
-------------
56F3E4 	0x4C8 	CommandPacket[16]  (113 byte structs)
 56F3E4  0x0	 int messageType
 56F3E8  0x4	 short dataLength
 56F3EA  0x6	 int timeStamp
 56F3EE  0xA	 int unknown
 56F3F2  X	 (Message specifica data)
-------------
56FAF4	0xBD8	int unitIndex[16]  [Set when processing single unit Command Packets]
-------------
56FB34	0xC18	Unit* BuildingUnitList (Linked List head)
56FB38	0xC1C	Unit* VehicleUnitList (Linked list head, also contains resources: MiningBeacons, MagmaVents, Fumaroles, Wreckage)
56FB3C	0xC20	Unit* ???
----------------
